
package com.xinan.weixin.media;

import com.jfinal.aop.Before;
import com.jfinal.core.Const;
import com.jfinal.core.Controller;
import com.jfinal.ext.interceptor.SearchSql;
import com.jfinal.kit.JsonKit;
import com.jfinal.kit.StringKit;
import com.jfinal.plugin.activerecord.Page;
import com.xinan.utils.Constants;
import com.jfinal.plugin.activerecord.Record;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class WxArticlesController extends Controller {

    public void index() {
        render("weixin/media/wxArticles.html");
    }
/**
 * add
 */
    public void  newModes() {
            String   id=getPara("id");
//    List<Record> newlist = Db.find("select  * from     where    id=  '" + id + "'");
    List<Record> newlist =  WxArticles.dao.findAlls(  "       id=  '" + id + "'") ;

    setAttr("newlist",newlist);
    render("weixin/media/wxArticles_form.html");
    }

   /**
     * 在增加了SearchSql拦截之后就可以根据页面配置信息
     * 自动装配查询语句放入request中,通过getAttr(Const.SEARCH_SQL)函数获得
     * 根据实际需要自动组装到Sql语句里面
     */
    @Before(SearchSql.class)
	public void query() {
        int pageNumber = getParaToInt("page");
        int pageSize = getParaToInt("rows");
        String where = getAttr(Const.SEARCH_SQL);
        Page<WxArticles> page = WxArticles.dao.page(pageNumber, pageSize, where);
        renderJson(page);
	}
	/**
     * save
     * @param
     * @return
     */
	public void save() {
        if(getModel(WxArticles.class).save()){
        	renderText(Constants.SAVESUCCESS);
        }else{
        	renderText(Constants.SAVEFAILED);
        }
	}
	
/**
     * Post请求的菜单更新函数,可以接受菜单的id和菜单对象,并且根据菜单id进行更新,返回影响行数根据此判断是否操作成功
     * 本例子使用rose框架的est风格url可以吧参数作为路径一部分进行传递
     * @param
     * @return
     */
	public void update() {
        if(getModel(WxArticles.class).update()){
        	renderText(Constants.EDITSUCCESS);
        }else{
        	renderText(Constants.EDITFAILED);
        }
	}
	
		/**
     * Post请求的菜单删除函数,可以接受菜单ID 并且根据ID进行物理删除,并且返回影响行数,据此判断是否操作成功
     * @param
     * @return
     */
	public void delete() {
        if(WxArticles.dao.deleteById(getParaToInt())){
        	renderText(Constants.DELETESUCCESS);
        }else{
        	renderText(Constants.DELETEFAILED);
        }
	}
/**
   微信POST数据示例如下：
    {
        "articles": [
        {
            "thumb_media_id":"qI6_Ze_6PtV7svjolgs-rN6stStuHIjs9_DidOHaj0Q-mwvBelOXCFZiq2OsIU-p",图文消息缩略图的media_id，可以在基础支持-上传多媒体文件接口中获得
                "author":"xxx",    图文消息的作者        不是必须
                "title":"Happy Day",     图文消息的标题
                "content_source_url":"www.qq.com",     在图文消息页面点击“阅读原文”后的页面   不是必须
                "content":"content",  图文消息页面的内容，支持HTML标签
                "digest":"digest",    图文消息的描述 不是必须
                "show_cover_pic":"1"      是否显示封面，1为显示，0为不显示  不是必须
        },
        {
            "thumb_media_id":"qI6_Ze_6PtV7svjolgs-rN6stStuHIjs9_DidOHaj0Q-mwvBelOXCFZiq2OsIU-p",
                "author":"xxx",
                "title":"Happy Day",
                "content_source_url":"www.qq.com",
                "content":"content",
                "digest":"digest",
                "show_cover_pic":"0"
        }
        ]
    }    */

private String sedjson (List<Record> list){
        List<Record> articleList = new ArrayList<Record>();
        Map articles = new HashMap();
        for(int i=0;i<list.size();i++){
            Record articlea = new Record();
            articlea.set("thumb_media_id",list.get(i).get("thumb_media_id"));
            if(StringKit.notBlank(list.get(i).get("author").toString())){
                articlea.set("author",list.get(i).get("author"));
            }
            articlea.set("title",list.get(i).get("title"));

            if(StringKit.notBlank(list.get(i).get("content_source_url").toString())){
                articlea.set("content_source_url",list.get(i).get("content_source_url"));
            }

            articlea.set("content",list.get(i).get("content"));
            if(StringKit.notBlank(list.get(i).get("digest").toString())){
                articlea.set("digest",list.get(i).get("digest"));
            }

        }
        articles.put("articles", articleList);
        String data = JsonKit.toJson(articles);
        return  data;
    }

}

